import { Module } from '@nestjs/common';
import { QueueService } from './queue.service';
import { QueueController } from './queue.controller';
import { BullModule } from '@nestjs/bull';
import { QueueProcessor } from './queue.processor';

@Module({
  imports: [
    // 使用 Redis 作为队列存储
    BullModule.forRoot({
      redis: {
        host: 'localhost',
        port: 6379,
      },
    }),
    // 注册队列
    BullModule.registerQueue({
      name: 'queue', // 队列名称
      defaultJobOptions: {
        // 超时时间
        timeout: 10000,
        // 最大重试次数
        attempts: 3,
        // 完成后是否移除队列
        removeOnComplete: true,
        // 失败后是否移除队列
        removeOnFail: false,
      },
    }),
  ],
  controllers: [QueueController],
  providers: [QueueService, QueueProcessor],
})
export class QueueModule {}
